\chapter{基本工具栏}

\section{导入机器人}

导入机器人按钮让用户从系统内置的机器人库中选择一个型号的机器人导入工作站中。机器人导入之后，系统会自
动创建对应的虚拟控制器以及任务。虚拟控制器包含机器人任务，左侧数据面板中包含机器人任务对应的工作
站任务。

任务坐标系原点默认位于机器人的底座中心，从而机器人虚拟控制器里的保存的本体坐标为0，即基坐标系与任
务坐标系重合。

当有多个机器人协同做任务时，有可能会让机器人的任务坐标系位于相同的位置, 从而至少有一个机器人的任务坐
标系不能与基坐标系重合。

当设置机器人的位姿的时候，可以选择是否移动机器人数据。注意，任务坐标系不随机器人移动。

在左面板中的控制器面板中可以设置任务坐标系的位姿，可以选择是否跟随任务坐标系移动数据。

\section{导入工具}

导入工具按钮让用户从系统内置的工具库中选择一个工具导入工作站中。

一个工具可以被安装到机器人的法兰上（用tool0表示）。

\section{导入其他模型}

导入其他设备按钮让用户从系统内置的模型库中导入需要的模型。

\section{导入用户库}

导入用户库按钮让用户从文件系统中选择用户库文件导入工作站中。

用户库可以通过将用户创建的机器人和工具模型保存成库文件得到。

\section{导入几何模型}

导入几何模型按钮让用户从文件系统中选择几何模型文件导入工作站中。目前支持STEP和STL两种格式的几何文件。

\subsection{STEP文件}
当导入STEP文件时，有以下选项。

\begin{itemize}
  \item 显示对象的边：让系统为模型的边生成可视化元素，使的模型的边被显示出来
  \item 将Part作为单一Body导入：对于模型中的每个Part，不再将其按照模型的结构生成多个Body, 而是将其
        整体作为一个Body表示。
\end{itemize}

\subsection{STL文件}
STL是以三角网格形式表示的几何模型文件。从STL文件导入生成的几何模型无法参与几何特征的选取，如选取顶点，
边，面等。

\section{导入点云}

导入点云按钮让用户从文件系统中选择点云文件导入工作站中。目前支持csv格式的点云文件。

目前仅支持点云坐标数据，每行表示一个点，每列一个坐标值，依次为X, Y, Z。

\section{创建坐标架}

\subsection{用位置和方向创建坐标架}

当激活位置输入框时，可以用鼠标在3D区域选点。

方向可通过欧拉角或四元数方式输入。

欧拉角顺序为Roll, Pitch, Yaw，即依次围绕世界坐标系中的X, Y, Z轴旋转相应的角度。

\subsection{用三点法创建坐标架}

\subsubsection{通过位置}
从上到下依次设定O, A, B三个点。创建的坐标架原点在O处，X轴为OA指向的方向，Y轴为位于OAB平面内垂直于OA
的轴。 Z轴垂直于OAB平面，指向OA与OB的向量积方向。

\subsubsection{通过三点}
从上到下依次设定O, A, B三个点。创建的坐标架X轴经过A点，指向OA的方向，坐标架原点为B点在OA线上的垂直投
影。 Y轴经过B点，指向原点到B点的方向。Z轴垂直于OAB平面，指向OA与OB的向量积方向。

\section{创建目标点}

创建目标点按钮以对话框的方式向指定的工件数据创建目标点。一次可以创建多个目标点。先将要创建的目标点位
置数据添加到列表中，再点击创建按钮。

创建的目标点的配置数据为无效配置数据。

有两种方式向列表添加目标点的位置：

\begin{itemize}
    \item 在位置和方向输入框内输入需要的值，然后点击添加按钮将目标点添加到待创建的列表中。
    \item 当位置输入框激活时，用鼠标在3D区域选点则可以直接将选中的位置添加到待创建的列表中。目标点的
    方向为默认方向。
\end{itemize}

列表中显示的坐标是世界坐标系中的坐标。创建目标点时系统会转化成指定的工件坐标系中的坐标。

\subsection{目标点名称前缀}
目标点名称输入框指定目标点名称的前缀。

\subsection{任务}
指定要向哪个任务创建目标点。

\subsection{工件数据}

指定要向哪个工件数据创建目标点。

\subsection{插入移动指令}

选中“插入移动指令”，则会在创建目标点之后，使用这些目标点在指定的路径中创建Move指令。

\section{创建关节目标点}
在指定的任务中创建一个关节目标点。

\subsection{名称}
指定关节目标点的名称。不能与同一任务下的其他关节目标点或其他类型的数据重名。

\subsection{关节值}
通过拖动滑块或者在输入框输入值设置关节的值。

\subsection{任务}
指定要向哪个任务创建关节目标点。默认选择当前活跃的任务。

\section{创建空路径}

在当前活跃任务中创建一个空路径。新建的路径成为活跃路径。

\section{创建工件数据}

\subsection{名称}
指定工件数据的名称。

\subsection{工件的用户坐标系由uframe属性定义}

为True时，工件数据的用户坐标系由uframe属性定义。

为False时，工件数据安装在一个外部轴设备上，用户坐标系为外部轴的基坐标系。工件数据的User Frame属性被忽略。

\subsection{机器人持有工件}
指定要创建的工件数据是固定的还是被机器人持有。

此选项仅当工件用户坐标系由uframe属性定义时可选。当工件数据安装在外部轴设备上时，此选项无效。

\subsection{父零件}
指定要创建的工件用户坐标系的父坐标系所对应的零件，父零件为空时工件坐标定义于世界坐标系。

此选项仅当工件用户坐标系由uframe属性定义，并且机器人持有工件为否时可选。

\subsection{用户坐标系}
有两种方式设置用户坐标系。

\subsubsection{直接输入}
在用户坐标系区域直接输入位置和方向数据。

当创建固定的工件数据时，输入界面中显示的是相对于任务坐标系的坐标。

当创建被机器人持有的工件数据时，输入界面中显示的是相对于腕部坐标系的坐标。

\subsubsection{选点法}

点击下方的选点按钮，进入到以选点方式设置坐标系的界面。

位置法：从上到下依次设定O, A, B三个点。创建的坐标架原点在O处，X轴为OA指向的方向，Y轴为位于OAB平面内垂直于OA
的轴。 Z轴垂直于OAB平面，指向OA与OB的向量积方向。

三点法：从上到下依次设定O, A, B三个点。创建的坐标架X轴经过A点，指向OA的方向，坐标架原点为B点在OA线上的垂直投
影。 Y轴经过B点，指向原点到B点的方向。Z轴垂直于OAB平面，指向OA与OB的向量积方向。

选点完成之后点击创建坐标系按钮生成坐标系，或点击取消按钮，回到直接输入界面。

\subsubsection{归零}
当用户更改了uframe属性，或者机器人持有工件，或者父零件的值时，将会导致用户坐标系的父坐标系切换。
系统会自动将用户坐标系置为零点。

\subsection{对象坐标系}
对象坐标系相对于用户坐标系定义。设定方法与用户坐标系相同。

输入界面中显示的是相对于用户坐标系的坐标。

对象坐标系会叠加到用户坐标系上形成工件数据的坐标系。

\subsection{预览}
点击预览按钮会用当前设定的坐标更新预览坐标架的位置。

\subsection{创建}
点击创建按钮创建工件数据。

\section{创建工具数据}

\subsection{工具数据名称}
指定工具数据的名称。

\subsection{机器人持有}
指定要创建的工具数据是固定的还是被机器人持有。

\subsection{工具坐标系}
指定工具坐标系的位置和方向。

当创建被机器人持有的工具数据时，输入界面中显示的是相对于腕部坐标系的坐标。

当创建固定的工具数据时，输入界面中显示的是相对于任务坐标系的坐标。

\subsection{负载数据}
指定机器人负载数据。

\subsection{任务}
指定创建工具数据的工作站任务。

\section{示教目标点}
使用活跃工具数据，在机器人TCP位置上创建一个目标点，创建在活跃工件数据里。

创建的目标点的配置数据为机器人当前的配置数据。

只有当活跃工具数据和活跃工件数据的机器人持有状态不同时才能进行该操作。

\section{示教指令}

使用活跃工具数据，在机器人TCP位置上创建一个目标点，并使用状态栏上的指令模板，在活跃路径中创建一条运
动指令。

只有当活跃工具数据和活跃工件数据的机器人持有状态不同时才能进行该操作。

\section{自由操作工具栏}
当自由操作工具栏中的按钮被激活时，可以通过鼠标操作选中的机器人和几何对象。

\subsection{坐标系选择}
选择操作的参考坐标系。

\subsection{平移}
在指定的参考坐标系中，沿坐标轴移动选中的物体。

\subsection{旋转}
在指定的参考坐标系中，旋转选中的物体。

\subsection{关节点动}
手动操作机械装置的各个关节。

\subsection{直线点动}
在选中的坐标系中，直线移动机器人的工具中心点(TCP).

\subsection{TCP重定向}
在选中的参考坐标系中，围绕TCP旋转工具的方向。

\section{活跃数据}

活跃数据用于默认创建新数据。例如，示教目标点会使用活跃工具数据创建在活跃工件数据里。

\subsection{活跃任务}
选择活跃工作站任务。

\subsection{活跃工件数据}
选择活跃工件数据。

\subsection{活跃工具数据}
选择活跃工具数据。

\section{同步代码}
将工作站任务中的路径和工具数据、工件数据同步到机器人任务中，生成对应的Tenon程序。

在树中选择要同步的数据项，点击确定按钮，完成同步。

将顶部工具栏切换到Tenon模块，在左边的Tenon代码部分点击模块文件，可以查看同步好的代码。
